The present invention relates to the electrical, electronic, and computer arts, and, more particularly, to techniques for enhancing the performance of a neural network.
A neural network is a leading method for implementing machine learning and training for cognitive computing. Neural networks can be implemented at a software level, but are more efficiently implemented using hardware, such as a cross bar arrangement employing a variable resistance weighting scheme. In a cross bar arrangement, the cross bars represent layers of the neural network, with corresponding weights connecting each of the layers and input/output connections; the cross bar essentially acts like an analog matrix multiple for the neural network operation. The input to the cross bar is a voltage which gets multiplied by a variable conductance to produce a current, and the current for each row is summed in a column. Hence, a multiply and add (MAA) operation of the neural network can be effectively performed with cross bar configurations.
Many types of weights have been proposed for use in neural networks, such as, for example, resistive random access memory (RRAM), phase change memory (PCM), and magneto-resistive random access memory (MRAM). Unfortunately, however, none of these weight implementation schemes are advantageous for use in a neural network during training due, at least in part, to their inherent asymmetry.